Questions
8 of 13
1What role does Qdrant play in a typical RAG architecture, and what happens on either side of it in the pipeline?
2How would you design chunking and metadata so that retrieved chunks can be traced back to their source document and section for citation?
3A RAG system is returning chunks that are topically related but don't actually answer the user's question. How would you improve retrieval quality?
4How would you handle access control in a RAG system where different users are only permitted to retrieve chunks from documents they have permission to view?
5Why might you keep conversation-turn embeddings in a separate, short-lived collection rather than mixing them into your main document knowledge base?
6How would you model 'users who liked this also liked' recommendations using Qdrant's recommend/discovery query modes?
7How would you incorporate business signals like popularity or recency into a similarity-based recommendation without abandoning vector search entirely?
8What cold-start problem exists for a new item or new user in a vector-similarity recommendation system, and how might you mitigate it?
9How would you evaluate whether a change to your recommendation retrieval pipeline actually improved results, before rolling it out to all users?
10Design a Qdrant-backed search feature for a SaaS product with thousands of small customers, each with their own private dataset. What collection and sharding strategy would you use?
11One large enterprise tenant has 100x more data than a typical tenant in your shared multitenant collection. What problems could this cause, and how would you address them?
12How would you offer per-tenant usage metrics (storage, query volume) in a shared multitenant Qdrant deployment?
13What is the tradeoff of offering tenants a 'bring your own embedding model' option in a shared collection?
08 / 13

What cold-start problem exists for a new item or new user in a vector-similarity recommendation system, and how might you mitigate it?

No interaction history means no meaningful embedding; use content-based fallback

The cold-start problem has two forms. For a new user, there is no interaction history, so the system cannot build a user embedding from the items they have liked - the recommend API needs positive examples, and there are none. For a new item, there are no users who have interacted with it, so it cannot be used as a positive example and it will not appear in the collaborative-filtering signal. In both cases, the vector-similarity approach that works well for established users and items has no signal to work with. The result is that new users get generic recommendations (usually popularity-based) and new items get no recommendations at all, which means they never accumulate the interactions needed to become established. This is a self-reinforcing problem: items that are never recommended are never engaged with, and items that are never engaged with are never recommended.

The mechanism of the mitigation is to substitute a content-based signal for the missing collaborative signal. For a new user, the system can ask for a few explicit preferences (categories, topics) or use demographic or contextual signals (location, device, referral source) to construct a provisional embedding. For a new item, the system can use the item's content embedding - the same embedding used for search - as its representation, and recommend it to users whose profiles are similar to the item's content. This is content-based recommendation, and it works from day one because the content embedding is available as soon as the item is created. The two approaches can be combined: use collaborative filtering when there is enough history, and fall back to content-based when there is not. The transition happens gradually as the user or item accumulates interactions, with the weight on the collaborative signal increasing over time. The system should also actively explore - show new items to a small fraction of users to gather the interactions needed to bring them into the collaborative signal.

  1. 1

    New user: no interaction history; use explicit preferences, demographics, or context to build a provisional profile.

  2. 2

    New item: no interactions; use the content embedding as the item's representation.

  3. 3

    Content-based fallback: recommend items whose content embedding is similar to the user's profile.

  4. 4

    Hybrid: blend collaborative and content-based signals, with weights that shift as history accumulates.

  5. 5

    Exploration: show new items to a small fraction of users to gather interactions.

  6. 6

    Metadata: use item attributes (category, brand, price) to bootstrap recommendations.

  7. 7

    Onboarding: ask the new user for a few preferences to seed the profile.

  8. 8

    Monitoring: track how quickly new items and users transition out of cold start.

The trade-off is between the quality of the cold-start recommendations and the cost of the fallback. Content-based recommendations are less accurate than collaborative-filtering recommendations for established users, but they are the only option for new users and items. Exploration costs some user satisfaction (showing new items that may not be relevant) but is necessary to gather the data that makes the system better. The common mistake is to ignore cold start and rely entirely on collaborative filtering, which produces a bad first experience for new users and starves new items of engagement. The second mistake is to over-explore, showing too many new items and degrading the experience for established users. The third mistake is to not track the transition out of cold start, so the system does not know when to trust the collaborative signal. The fourth mistake is to use a content embedding that is not aligned with the collaborative space, so the content-based recommendations are poor. Version note: the recommend API and the query API have evolved across releases, but the cold-start pattern (content-based fallback plus exploration) is version-independent. Some versions support using raw vectors as examples in the recommend API, which makes it easier to use a content embedding as a provisional user profile.

javascript

Version-dependent: the recommend API and the query API have changed across Qdrant releases. In qdrant-client 1.10+, the query API is unified under query_points, and using raw vectors as examples in the recommend mode may be supported differently. The cold-start pattern itself - content-based fallback plus exploration - is version-independent. If your version does not support using raw vectors as examples, you can still use a content-based query with the user's provisional profile vector directly.

Difficulty: 7/10
Topics: Recommendations, Cold Start, Content-Based Filtering

Scenario Questions

0-2 years experience
  1. 1

    A new user signs up and the system has no history. Describe how you would generate a first set of recommendations.

  2. 2

    A new item is added and gets no recommendations. Explain why and how content-based recommendation fixes it.

2-5 years experience
  1. 1

    You rely on collaborative filtering and new items never get traction. Describe the cold-start mitigation and the exploration strategy.

  2. 2

    You need to blend content-based and collaborative signals for users with some but not much history. Describe the blending approach.

5-8 years experience
  1. 1

    Design a recommendation system that handles cold start for both users and items, with a smooth transition to collaborative filtering as history accumulates.

  2. 2

    You need to explore new items without degrading the experience for established users. Describe the experiment design and the metrics.

8+ years experience
  1. 1

    You are designing a recommendation system for a marketplace with continuous item and user churn. Describe the cold-start architecture, the exploration policy, and the evaluation.

  2. 2

    Derive the optimal exploration rate as a function of the item churn rate and the value of the data gathered, and explain how you would validate it.

Follow-up Questions

  • How would you measure how quickly new items transition out of cold start, and what would you do if the transition is too slow?
  • How would you balance exploration and exploitation for new items, and what metric would you use to tune the balance?